package com.njtoyo.taxi.admin.service.platform;

import com.njtoyo.taxi.admin.mapper.secondary.fields.FakeMultiple;
import com.njtoyo.taxi.admin.rest.presenter.platfrom.AdminUserAllPresenter;
import com.njtoyo.taxi.admin.rest.presenter.platfrom.AdminUserResourcePresenter;
import com.njtoyo.taxi.admin.rest.wrapper.platform.adminUser.*;
import com.njtoyo.taxi.admin.rest.wrapper.platform.auth.AdminUserLoginWrapper;
import com.njtoyo.taxi.admin.rest.wrapper.platform.auth.AdminUserUpdatePhoneOnlineWrapper;
import com.njtoyo.taxi.entity.backend.AdminUser;
import com.taxi.entity.common.RestResult;

import java.util.List;
import java.util.Map;

public interface AdminUserService {
    RestResult<List<AdminUserAllPresenter>> adminUserAll();
    RestResult adminUserLogin(AdminUserLoginWrapper adminUserLoginWrapper);

    RestResult getSelfInfo(AdminUser adminUser);

    RestResult<AdminUserResourcePresenter> getResource(AdminUser adminUser);

    RestResult findAdminUserPage(AdminUserListWrapper adminUserListWrapper);

    RestResult logout(AdminUser adminUser);

    RestResult updateRole(Long id, AdminUserUpdateRoleWrapper updateRoleWrapper);

    RestResult updateIdentity(Long id, AdminUserUpdateIdentityWrapper updateWrapper);

    RestResult updateFakeMultiple(Long id, FakeMultiple updateWrapper);

    RestResult updateDefaultPoint(Long id, AdminUserUpdateDefaultPointWrapper updateWrapper);

    RestResult updatePhoneOnline(AdminUser adminUser, AdminUserUpdatePhoneOnlineWrapper updateWrapper);
    
    RestResult addHotCanton(AdminUser adminUser, HotCantonWrapper wrapper);
    
    RestResult getHotCanton(AdminUser adminUser);

    RestResult create(com.njtoyo.taxi.admin.mapper.secondary.entity.AdminUser adminUser);

    RestResult updateState(Map<String, Object> param);
}
